/**
 * fileName:  Account.java
 * author:  Lei
 * Company:  Cloudland Studio
 * Createdate:  2014-2-22 下午4:01:51
 *
 * All rights Reserved, Designed By cloudland Copyright(C) 2010-2020
 *   
 * Modification  History:
 *     Date           Author        Version        
 * -------------------------------------------
 * 2014-2-22          Lei            1.0        
 *
 * Why & What is modified:
 * 1.0: 文件创建
 */
package org.cloudland.commercial.uphold.handler;

 /**
 * <pre> 
 * 账号接口。
 * </pre>
 * @ClassName  Account
 * @author  Lei
 * @version  %I%, %G%
 * @see  
 * @since   JDK1.6
 *
 */
public interface Account {
	
	/**
	 * <pre>
	 * 获取账号标示符
	 * </pre>
	 *
	 * @return   账号标示符
	 */
	String id();
	
	/**
	 * <pre>
	 * 设置账号名称，此名称用于登录用
	 * </pre>
	 *
	 * @param accountName  账号名称
	 */
	void setName(String accountName);
	
	/**
	 * <pre>
	 * 获取账号名称
	 * </pre>
	 *
	 * @return  账号名称
	 */
	String getName();
	
	/**
	 * <pre>
	 * 设置账号密码，此密码用于登录系统时使用。
	 * </pre>
	 *
	 * @param accountPassword  账号密码
	 */
	void setPassword(String accountPassword);
	
	/**
	 * <pre>
	 * 获取账号密码
	 * </pre>
	 *
	 * @return  账号密码
	 */
	String getPassword();
	
	/**
	 * <pre>
	 * 设置用户授权信息
	 * </pre>
	 *
	 * @param roleId 授权标示符  
	 */
	void setAuthorize(String authorizeId);
	
	/**
	 * <pre>
	 * 获取用户授权信息
	 * </pre>
	 *
	 * @return 授权信息
	 */
	Authorize getAuthorize();
	
	/**
	 * <pre>
	 * 将新建或者修改的账户信息提交保持。
	 * </pre>
	 *   
	 */
	void submit();

}
